package com.qinggeng.project.system.service;

import com.qinggeng.common.enums.AppTurnPageEnum;
import com.qinggeng.project.api.dto.MessageListDto;
import com.qinggeng.project.system.domain.*;

import java.util.List;

/**
 * 消息列Service接口
 *
 * @author qinggeng
 * @date 2020-06-30
 */
public interface IUserMessageService
{
    /**
     * 查询消息列
     *
     * @param messageId 消息列ID
     * @return 消息列
     */
    public UserMessage selectUserMessageById(Long messageId);

    /**
     * 查询消息列列表
     *
     * @param userMessage 消息列
     * @return 消息列集合
     */
    public List<UserMessage> selectUserMessageList(UserMessage userMessage);

    /**
     * 新增消息列
     *
     * @param userMessage 消息列
     * @return 结果
     */
    public int insertUserMessage(UserMessage userMessage);

    /**
     * 修改消息列
     *
     * @param userMessage 消息列
     * @return 结果
     */
    public int updateUserMessage(UserMessage userMessage);

    /**
     * 批量删除消息列
     *
     * @param messageIds 需要删除的消息列ID
     * @return 结果
     */
    public int deleteUserMessageByIds(Long[] messageIds);

    /**
     * 删除消息列信息
     *
     * @param messageId 消息列ID
     * @return 结果
     */
    public int deleteUserMessageById(Long messageId);

    List<UserMessage> selectUserMessageMemberList(UserMessage where);

    List<MessageListDto> listMessageListDto(UserMessage where);

    public int selectUserMessageCount(UserMessage messageWhere);

    /**
     * 查询用户最新的一个消息
     * @param userId
     * @return
     */
    UserMessage selectFirstUserMessageList(Long userId);

    /**
     * 通过订单Id和状态查询消息
     * @param ordersId
     * @return
     */
    int selectUserMessageByIdAndStatus(Long ordersId);


    boolean  delMessage(String messageId);


}
